package com.github.itdachen.mapper;

import com.github.itdachen.entity.DevTableInfo;
import com.github.itdachen.entity.ProtoColumns;
import com.github.itdachen.entity.ProtoTable;
import com.github.itdachen.sdk.query.DevTableInfoQuery;
import com.github.itdachen.sdk.query.ProtoTableQuery;
import com.github.itdachen.sdk.vo.DevTableInfoVO;

import java.util.List;

/**
 * 代码生成业务表 mapper
 *
 * @author 王大宸
 * @date 2023-09-23 21:25:55
 */
public interface IDevTableInfoMapper {

    /***
     * 分页
     *
     * @author 王大宸
     * @date 2023-09-23 21:25:55
     * @param params com.github.itdachen.sdk.query.DevTableInfoQuery
     * @return java.util.List<com.github.itdachen.sdk.vo.DevTableInfoVO>
     */
    List<DevTableInfoVO> findDevTableInfoPage(DevTableInfoQuery params);

    /***
     * 查询数据库中原生表
     *
     * @author 王大宸
     * @date 2023/4/11 21:08
     * @param query query
     * @return java.util.List<com.github.itdachen.framework.code.entity.ProtoTable>
     */
    List<ProtoTable> findProtoList(ProtoTableQuery query);


    /***
     * 根据表名, 查询表
     *
     * @author 王大宸
     * @date 2023/9/23 23:20
     * @param list list
     * @return java.util.List<com.github.itdachen.entity.ProtoTable>
     */
    List<ProtoTable> findProtoTableList(List<String> list);

    /***
     * 根据表明, 查询原始表字段
     *
     * @author 王大宸
     * @date 2023/9/23 23:22
     * @param tableName tableName
     * @return java.util.List<com.github.itdachen.entity.ProtoColumns>
     */
    List<ProtoColumns> findProtoTableColumns(String tableName);


    /***
     * 新增
     *
     * @author 王大宸
     * @date 2023-09-23 21:25:55
     * @param devTableInfo devTableInfo
     * @return int int
     */
    int saveDevTableInfo(DevTableInfo devTableInfo);

    /***
     * 根据id查询
     *
     * @author 王大宸
     * @date 2023-09-23 21:25:55
     * @param id 需要查询数据的id
     * @return com.github.itdachen.sdk.vo.devTableInfoVO
     */
    DevTableInfoVO getById(String id);

    DevTableInfoVO findTableInfo(String id);

    /***
     * 更新
     *
     * @author 王大宸
     * @date 2023-09-23 21:25:55
     * @param devTableInfo devTableInfo
     * @return int int
     */
    int updateDevTableInfo(DevTableInfo devTableInfo);

    /***
     * 根据id删除
     *
     * @author 王大宸
     * @date 2023-09-23 21:25:55
     * @param id 需要删除数据的id
     * @return int 影响行数
     */
    int deleteDevTableInfoById(String id);

    /***
     * 批量添加
     *
     * @author 王大宸
     * @date 2023-09-23 21:25:55
     * @param list java.util.List<com.github.itdachen.entity.DevTableInfo>
     */
    void batchSave(List<DevTableInfo> list);

    /***
     * 查询代码参数
     *
     * @author 王大宸
     * @date 2023/10/2 15:58
     * @param id id
     * @return com.github.itdachen.sdk.vo.DevTableInfoVO
     */
    DevTableInfoVO findTableInfoVoById(String id);



    DevTableInfoVO findUsableTableInfoVoById(String id);


}